package com.xyy.saas.payment.merchant.core.vo;

import com.xyy.saas.payment.cores.vo.ContactInfo;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.List;

/**
 * @Author: wuqiongda
 * @Date: 2020/4/10 10:01
 */
public class MerchantAccountVo implements Serializable {
    private static final long serialVersionUID = 8533506364082520201L;

	/** 企业证件照片 企业必填 图片BASE64 编码，编码后的大小不能超过 500k，具体视场景而定（注意：请删除开头的：data:image/{{PIC_FMT}};base64, 字符串之后再提交 */
    @NotEmpty(message = "企业证件照片不能为空")
    private String businessCertPicUrl;

	/** 法人身份证正面 企业必填  图片BASE64 编码，编码后的大小不能超过 500k，具体视场景而定（注意：请删除开头的：data:image/{{PIC_FMT}};base64, 字符串之后再提交 */
    @NotEmpty(message = "法人身份证正面不能为空")
    private String idCardFrontUrl;

	/** 法人身份证背面 企业必填  图片BASE64 编码，编码后的大小不能超过 500k，具体视场景而定（注意：请删除开头的：data:image/{{PIC_FMT}};base64, 字符串之后再提交 必填 */
    @NotEmpty(message = "法人身份证背面不能为空")
    private String idCardBackUrl;

	/** 图片格式。 可选：png、jpg */
    @NotEmpty(message = "图片格式不能为空")
    private String picFmt;

	/** 接口调用方的业务类型, 支付平台分配 */
    @NotEmpty(message = "业务类型不能为空")
    private String businessIdType;

	/** 账户渠道选择 目前仅支持aggregate */
    @NotEmpty(message = "账户渠道不能为空")
    private String accountChannel;

	/** 联系人信息 查看ContactInfoVo */
    @NotEmpty(message = "联系人信息不能为空")
    private List<ContactInfo> contactInfos;

	/** 公司名称，1~32 位，中英文长度都算 1（后面添加结算账号需与此名字一致） */
    @NotEmpty(message = "公司名称不能为空")
    private String name;

	/** 法人手机号，11 位 */
    @NotEmpty(message = "法人手机号不能为空")
    private String mobile;

	/** 办公地址，1~256 位，中英文长度都算 1 */
    @NotEmpty(message = "办公地址不能为空")
    private String address;

	/** 证件号码 */
    @NotEmpty(message = "证件号码不能为空")
    private String cardId;

	/** 证件起始日期，格式：yyyy-mm-dd */
    @NotEmpty(message = "证件起始日期不能为空")
    private String validFrom;

	/** 证件结束日期，格式：yyyy-mm-dd */
    @NotEmpty(message = "证件结束日期")
    private String validUntil;

	/** 行业 */
    @NotEmpty(message = "行业不能为空")
    private String industry;

	/** 接收者银行账号/卡号 */
    @NotEmpty(message = "接收者银行账号/卡号不能为空")
    private String account;

	/** 收款者银行开户名 */
    @NotEmpty(message = "收款者银行开户名不能为空")
    private String settleName;

	/** 银行卡预留手机号 */
    @NotEmpty(message = "银行卡预留手机号不能为空")
    private String settleMobile;

	/** 银行名称(无需填写到支行) */
    @NotEmpty(message = "银行名称不能为空")
    private String openBank;

	/** 银行卡号类型 */
    @NotEmpty(message = "银行卡号类型不能为空")
    private String cardType;

	/** 开户行名称 */
    @NotEmpty(message = "开户行名称不能为空")
    private String subBank;

	/** 开户行行号 */
    @NotEmpty(message = "开户行行号不能为空")
    private String subBankCode;

	/** token */
    @NotEmpty(message = "token")
    private String token;

	/** 结算用户创建成功通知地址 */
    @NotEmpty(message = "结算用户创建成功通知地址不能为空")
    private String callbackAddress;

    public String getPicFmt() {
        return picFmt;
    }

    public void setPicFmt(String picFmt) {
        this.picFmt = picFmt;
    }

    public List<ContactInfo> getContactInfos() {
        return contactInfos;
    }

    public void setContactInfos(List<ContactInfo> contactInfos) {
        this.contactInfos = contactInfos;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getCardId() {
        return cardId;
    }

    public void setCardId(String cardId) {
        this.cardId = cardId;
    }

    public String getValidFrom() {
        return validFrom;
    }

    public void setValidFrom(String validFrom) {
        this.validFrom = validFrom;
    }

    public String getValidUntil() {
        return validUntil;
    }

    public void setValidUntil(String validUntil) {
        this.validUntil = validUntil;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getSettleName() {
        return settleName;
    }

    public void setSettleName(String settleName) {
        this.settleName = settleName;
    }

    public String getSettleMobile() {
        return settleMobile;
    }

    public void setSettleMobile(String settleMobile) {
        this.settleMobile = settleMobile;
    }

    public String getOpenBank() {
        return openBank;
    }

    public void setOpenBank(String openBank) {
        this.openBank = openBank;
    }

    public String getSubBank() {
        return subBank;
    }

    public void setSubBank(String subBank) {
        this.subBank = subBank;
    }

    public String getSubBankCode() {
        return subBankCode;
    }

    public void setSubBankCode(String subBankCode) {
        this.subBankCode = subBankCode;
    }

    public String getBusinessCertPicUrl() {
        return businessCertPicUrl;
    }

    public void setBusinessCertPicUrl(String businessCertPicUrl) {
        this.businessCertPicUrl = businessCertPicUrl;
    }

    public String getIdCardFrontUrl() {
        return idCardFrontUrl;
    }

    public void setIdCardFrontUrl(String idCardFrontUrl) {
        this.idCardFrontUrl = idCardFrontUrl;
    }

    public String getIdCardBackUrl() {
        return idCardBackUrl;
    }

    public void setIdCardBackUrl(String idCardBackUrl) {
        this.idCardBackUrl = idCardBackUrl;
    }

    public String getCardType() {
        return cardType;
    }

    public void setCardType(String cardType) {
        this.cardType = cardType;
    }

    public String getBusinessIdType() {
        return businessIdType;
    }

    public void setBusinessIdType(String businessIdType) {
        this.businessIdType = businessIdType;
    }

    public String getAccountChannel() {
        return accountChannel;
    }

    public void setAccountChannel(String accountChannel) {
        this.accountChannel = accountChannel;
    }

    public String getIndustry() {
        return industry;
    }

    public void setIndustry(String industry) {
        this.industry = industry;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getCallbackAddress() {
        return callbackAddress;
    }

    public void setCallbackAddress(String callbackAddress) {
        this.callbackAddress = callbackAddress;
    }
}
